// import globals from "globals";
// import pluginJs from "@eslint/js";
// import tseslint from "typescript-eslint";

// /** @type {import('eslint').Linter.Config[]} */
// export default [
//   {files: ["**/*.{js,mjs,cjs,ts}"]},
//   {languageOptions: { globals: globals.browser }},
//   pluginJs.configs.recommended,
//   ...tseslint.configs.recommended,
// ];

import globals from 'globals';
import pluginJs from '@eslint/js';
import tseslint from 'typescript-eslint';

/** @type {import('eslint').Linter.Config[]} */
export default [
	// 基础配置
	{
		files: ['**/*.{js,mjs,cjs,ts}'],
		languageOptions: {
			globals: { ...globals.browser }
		}
	},

	// ESLint 推荐规则
	pluginJs.configs.recommended,

	// TypeScript 推荐规则（部分覆盖）
	// ‌规则覆盖失效‌：tseslint.configs.recommended 默认开启 no-explicit-any，但用户配置未正确覆盖。
	...tseslint.configs.recommended.map((config) => ({
		...config,
		rules: {
			...config.rules,
			'@typescript-eslint/no-explicit-any': 'off' // 显式关闭
		}
	})),

	{
		rules: {
			// 'no-console': 'warn',
			'@typescript-eslint/ban-ts-comment': 'off',
			// 'no-undef': [
			// 	'warn', // 将全局未定义错误改为警告
			// 	{
			// 		typeof: true,
			// 		allow: ['__dirname'] // 允许 __dirname 不声明
			// 	}
			// ],
			'no-undef': [
				'warn',
				{
					typeof: true, // ✔️ 合法参数
					allowedGlobals: {
						// ✔️ 正确语法
						__dirname: true
					}
				}
			]
		}
	}
];
